/*
 *  AgentStyle.h
 *  MilovoMg00
 *
 *  Created by luca on 03/08/06.
 *  Copyright 2006 __MyCompanyName__. All rights reserved.
 *
 */

#ifndef AGENTSTYLE_H
#define AGENTSTYLE_H

#include "Milovo_HCommons.h"

class AgentStyle {
	Mil_Double ProbImitation;
	Mil_Double ProbJump;
	Mil_Double StartJumpRange;
	Mil_Double EndJumpRange;
	Mil_Double JumpRangeUsed;
	Mil_Double ProbDevelopNewGoal;
	Mil_Int UseDeepSearchGoal;	
	Mil_Int InnovationStrategy;
	Mil_Int SelectPartnerMode;
	Mil_Double UseSuppliersChange;
	Mil_Int HowManyNewFriends;
	Mil_Int IncludeZeroAgentInNewFriends;
	Mil_Int SelectGoalInAgentOutput;
	Mil_Double ProbGoalFromRequest;
	Mil_Int ValidateRecipeOutput;
	Mil_Int NProduceFloor;
	Mil_Int NProduceCeil;
	Mil_Double AlfaTransactions;
	Mil_Double BetaProjects;
	Mil_Double LambdaTransactions;
	Mil_Double LambdaProjects;
	Mil_Double ValueSuccessedProjects;
	Mil_Double ValueFailedProjects;
	Mil_Double ProjectsDeadLevel;
	Mil_Int MaxRecipesAllowed;
	Mil_Double ScaffProb;
	Mil_Int AcceptScaffMinLevel;
	Mil_Int KnowledgeDecay;
	Mil_Int ChangeSupplierMethod;
	Mil_Int ProduceRecipeMethod;
	
public:
	AgentStyle();
	AgentStyle(Mil_Double tmpProbImitation, Mil_Double tmpProbJump, Mil_Double tmpStartJumpRange, Mil_Double tmpEndJumpRange, Mil_Int tmpJumpRangeUsed,
				  Mil_Double tmpProbDevelopNewGoal, Mil_Int tmpInnovationStrategy, Mil_Int tmpSelectPartnerMode, Mil_Int tmpMaxRecipesAllowed, 
				  Mil_Double tmpUseSuppliersChange, Mil_Int tmpHowManyNewFriends, Mil_Int tmpIncludeZeroAgentInNewFriends, Mil_Double tmpProbGoalFromRequest,
				  Mil_Int tmpSelectGoalInAgentOutput, Mil_Int tmpValidateRecipeOutput, Mil_Int tmpNProduceCeil, Mil_Int tmpNProduceFloor, 
				  Mil_Double tmpAlfaTransactions, Mil_Double tmpBetaProjects, Mil_Double tmpLambdaTransactions, Mil_Double tmpLambdaProjects, 
				  Mil_Double tmpValueSuccessedProjects, Mil_Double tmpValueFailedProjects, Mil_Double tmpProjectsDeadLevel, Mil_Double tmpScaffProb,
				  Mil_Int tmpAcceptScaffMinLevel, Mil_Int tmpUseDeepSearchGoal, Mil_Int tmpKnowledgeDecay, Mil_Int tmpChangeSupplierMethod, 
				  Mil_Int tmpProduceRecipeMethod);
	~AgentStyle();
	Mil_Double GetProbImitation() {return ProbImitation;}
	Mil_Double GetProbJump() {return ProbJump;}
	Mil_Double GetStartJumpRange() {return StartJumpRange;}
	Mil_Double GetEndJumpRange() {return EndJumpRange;}
	Mil_Double GetJumpRangeUsed() {return JumpRangeUsed;}
	Mil_Double GetProbDevelopNewGoal() {return ProbDevelopNewGoal;}
	Mil_Int GetInnovationStrategy() {return InnovationStrategy;}
	Mil_Int GetSelectPartnerMode() {return SelectPartnerMode;}
	Mil_Double GetUseSuppliersChange() {return UseSuppliersChange;}
	Mil_Int GetHowManyNewFriends() {return HowManyNewFriends;}
	Mil_Int GetIncludeZeroAgentInNewFriends() {return IncludeZeroAgentInNewFriends;}
	Mil_Double GetProbGoalFromRequest() {return ProbGoalFromRequest;}
	Mil_Int GetSelectGoalInAgentOutput() {return SelectGoalInAgentOutput;}
	Mil_Int GetValidateRecipeOutput() {return ValidateRecipeOutput;}
	Mil_Int GetNProduceFloor() {return NProduceFloor;}
	Mil_Int GetNProduceCeil() {return NProduceCeil;}
	Mil_Double GetAlfaTransactions() {return AlfaTransactions;}
	Mil_Double GetBetaProjects() {return BetaProjects;}
	Mil_Double GetLambdaTransactions() {return LambdaTransactions;}
	Mil_Double GetLambdaProjects() {return LambdaProjects;}
	Mil_Double GetValueSuccessedProjects() {return ValueSuccessedProjects;}
	Mil_Double GetValueFailedProjects() {return ValueFailedProjects;}
	Mil_Double GetProjectsDeadLevel() {return ProjectsDeadLevel;}
	Mil_Int GetMaxRecipesAllowed() {return MaxRecipesAllowed;}
	Mil_Double GetScaffProb() {return ScaffProb;}
	Mil_Int GetAcceptScaffMinLevel() {return AcceptScaffMinLevel;}
	Mil_Int GetUseDeepSearchGoal() {return UseDeepSearchGoal;}
	Mil_Int GetKnowledgeDecay() {return KnowledgeDecay;}
	Mil_Int GetChangeSupplierMethod() {return ChangeSupplierMethod;}
	Mil_Int GetProduceRecipeMethod() {return ProduceRecipeMethod;}
	
	void SetProbImitation(Mil_Double tmpNewValue) {ProbImitation = tmpNewValue;}
	void SetProbJump(Mil_Double tmpNewValue) {ProbJump = tmpNewValue;}
	void SetStartJumpRange(Mil_Double tmpNewValue) {StartJumpRange = tmpNewValue;}
	void SetEndJumpRange(Mil_Double tmpNewValue) {EndJumpRange = tmpNewValue;}
	void SetJumpRangeUsed(Mil_Double tmpNewValue) {JumpRangeUsed = tmpNewValue;}
	void SetProbDevelopNewGoal(Mil_Double tmpNewValue) {ProbDevelopNewGoal = tmpNewValue;}
	void SetInnovationStrategy(Mil_Int tmpNewValue) {InnovationStrategy = tmpNewValue;}
	void SetSelectPartnerMode(Mil_Int tmpNewValue) {SelectPartnerMode = tmpNewValue;}
	void SetUseSuppliersChange(Mil_Double tmpNewValue) {UseSuppliersChange = tmpNewValue;}
	void SetHowManyNewFriends(Mil_Int tmpNewValue) {HowManyNewFriends = tmpNewValue;}
	void SetIncludeZeroAgentInNewFriends(Mil_Int tmpNewValue) {IncludeZeroAgentInNewFriends = tmpNewValue;}
	void SetProbGoalFromRequest(Mil_Double tmpNewValue) {ProbGoalFromRequest = tmpNewValue;}
	void SetSelectGoalInAgentOutput(Mil_Int tmpNewValue) {SelectGoalInAgentOutput = tmpNewValue;}
	void SetValidateRecipeOutput(Mil_Int tmpNewValue) {ValidateRecipeOutput = tmpNewValue;}
	void SetNProduceFloor(Mil_Int tmpNewValue) {NProduceFloor = tmpNewValue;}
	void SetNProduceCeil(Mil_Int tmpNewValue) {NProduceCeil = tmpNewValue;}
	void SetAlfaTransactions(Mil_Double tmpNewValue) {AlfaTransactions = tmpNewValue;}
	void SetBetaProjects(Mil_Double tmpNewValue) {BetaProjects = tmpNewValue;}
	void SetLambdaTransactions(Mil_Double tmpNewValue) {LambdaTransactions = tmpNewValue;}
	void SetLambdaProjects(Mil_Double tmpNewValue) {LambdaProjects = tmpNewValue;}
	void SetValueSuccessedProjects(Mil_Double tmpNewValue) {ValueSuccessedProjects = tmpNewValue;}
	void SetValueFailedProjects(Mil_Double tmpNewValue) {ValueFailedProjects = tmpNewValue;}
	void SetProjectsDeadLevel(Mil_Double tmpNewValue) {ProjectsDeadLevel = tmpNewValue;}
	void SetMaxRecipesAllowed(Mil_Int tmpNewValue) {MaxRecipesAllowed = tmpNewValue;}
	void SetScaffProb(Mil_Double tmpNewValue) {ScaffProb = tmpNewValue;}
	void SetAcceptScaffMinLevel(Mil_Int tmpNewValue) {AcceptScaffMinLevel = tmpNewValue;}
	void SetUseDeepSearchGoal(Mil_Int tmpNewValue) {UseDeepSearchGoal = tmpNewValue;}
	void SetKnowledgeDecay(Mil_Int tmpNewValue) {KnowledgeDecay = tmpNewValue;}
	void SetChangeSupplierMethod(Mil_Int tmpNewValue) {ChangeSupplierMethod = tmpNewValue;}
	void SetProduceRecipeMethod(Mil_Int tmpNewValue) {ProduceRecipeMethod = tmpNewValue;}
};

#endif

